The present invention relates to the use of logical addresses in implementing module redundancy in a networking system.
Networking is generally a configuration of computers, software and communication devices connected for information interchange. It has become a gateway in which computer processing and electronic communication have merged into one entity. The goal is to process all information including data, voice and image transmission by digital techniques such as asynchronous transfer mode (ATM), frame relay and etc., according to a unified standard such as integrated services digital network (ISDN). By allowing the various computers in a network to transmit and receive information, the pool of information accessible by a computer is far greater than that of a stand-alone computer system. Generally, a networking system may be divided into a number of links. A link may be a local area network (LAN) with each LAN capable of supporting several computers. Where the distance between computers is far apart, that network of computers may be defined as a wide area network (WAN). In a system supporting tens, hundreds or even thousands of computers, complications may arise in that various computers may have their own proprietary computer architectures that do not communicate with each other. A solution to this problem is to move away from proprietary computer architecture to an open system such as open systems interconnection (OSI) standard. By allowing the various computers to adopt the OSI standard, a platform is established in which the various computers may communicate with each other.
An international organization for standardization (ISO) maintains and develops the OSI standard. Generally, OSI architecture is divided into seven layers: the physical layer, the data link layer, the network layer, the transport layer, the session layer, the presentation layer, and the application layer. Further information regarding these layers may be found in Andrew S. Tanenbaum, Computer Networks (2nd ed. 1988, Prentice Hall). Generally, information packets are formed in the higher layers and are passed down to the lower layers until they reach the network layer. In the network layer, headers are added to the information packets and may contain, for example, destination addresses to which the packets are to be sent. The packets are passed to the physical layer which transmits the packets into the networking system. The system, then, forwards the packets link to link until they are retrieved at their destination according to the headers. Depending on the digital technique used, the packets may be frames or cells. Widespread use has been made of the networking system described above. For example, certain entities routinely use these networking systemsxe2x80x94telecommunications companies, brokerage firms, banks, large manufacturing companies, electronic commerce companies and so forth. These entities demand highly reliable inter-network connections. Stated differently, a breakdown in the networking system may bring about great economic loss and hardship to the entities using the networking system.
Typically, in an information processing subsystem of the networking system, multiple hardware modules are used to distribute information. One or more of these modules may be responsible for critical functions which need to be available at all times for the proper functioning of the networking system. An example of this module may be a central processing module that segments information into frames or cells and/or reassembles frames or cells into information. An example of a central processing module may be an ATM processing module. The principle behind ATM is to take any received information whether it be data, voice or image, and any speed rate of the information, segment the information into predetermined fixed-length packets (e.g. cells) and attach a header to the individual cells so the each cell may be sent to its destination in the networking system. In the distribution mode, the ATM central processing module processes information into cells and the cells are sent to the various distribution modules to be transmitted over the networking system. Thus, a failure of the ATM processing module generally results in the failure of the link for that portion of the networking system.
To prevent such failure, hardware modules with critical functions, termed server modules, may be supported by one or more hardware redundant modules with similar functionality. Typically, one of the modules, termed active module, is chosen to actively provide the critical functions in a networking system. One or more additional modules with similar functions, termed standby modules, are present as backup for the active module. If the active module fails, the stand-by module detects the failure condition and takes over to become the active module. Modules in inter-module communication with the active module, termed client modules, also may detect the failure. The client modules, once detecting that the previous active module has failed, adjust their addressing modes to communicate with the new active module to resume normal operations.
Generally, the server modules and the client modules may be connected together by means of a variety of network interconnection devices such as buses, switches and so forth. Packets with routing headers that may contain the address of the destination modules may be used for inter-module communication. According to one example, hardware modules are inserted into physical slots where each slot is associated with a physical address. Stated differently, a physical slot has an assigned address which is used by the connected module to identify its location. For inter-module communication purposes, the physical addresses may be used by the modules for transmitting and receiving packets. In the case where the current active server module in a slot has failed, and a standby server module in another slot becomes the new active server module, the client modules need to use the physical address of the slot of the new active server module to transmit and receive packets. This generally involves reprogramming hardware and/or software data structures in the client modules to communicate with the new active server module.
Generally, modules use lookup tables to determine a physical address to which a destination module is associated with. When a new active server module takes over the functions of the previous server module, the client modules need to reprogram their lookup tables to identify the physical address of the new active server module in order to communicate with it. Further, using physical addresses to identify the new active module may generally require the client modules to have the capability of detecting a changeover of the active module and to modify the lookup tables in the hardware and/or software in real time. To implement these features, the clients modules need to be sophisticated and intelligent causing the modules to be expensive. Further, during the changeover to the new active server module, every client module is affected and thus, the system is impaired until the client modules modify their lookup tables to reflect the current active server module.
An apparatus is described to implement a module redundant system using logical addresses. The apparatus may comprise a bus on which a plurality of server modules may be coupled to. One of the server modules may be configured to be active and remaining server modules may be configured to be on standby. A plurality of client modules may be coupled to the bus and configured to be in communication with the active server module using logical addresses. Other features and advantages of the present invention will be apparent from the accompanying drawings and detailed description to be followed below.